package com.sihai.ehr.service;

import com.sihai.core.Limit;
import com.sihai.core.LimitedList;
import com.sihai.core.Sorter;
import com.sihai.ehr.model.biz.ExamPeriod;
import com.sihai.ehr.model.biz.ExamQualScore;
import com.sihai.ehr.model.biz.ExamStatistics;
import com.sihai.ehr.model.sys.ExaminePeriodEnum;
import com.sihai.ehr.web.pojo.ExamEmployeePojo;
import com.sihai.ehr.web.pojo.ExamFacetalkPojo;
import com.sihai.ehr.web.pojo.ExamStatisticsItemPojo;
import com.sihai.ehr.web.pojo.ExamStatisticsPojo;

import java.util.List;


public interface ExamAppManageService {

    /**
     * 考核面谈人员对象集合
     * @param periodType
     * @param peroid
     * @param organizationId
     * @param dutyId
     * @param startSocre
     * @param endScore
     * @param status
     * @param limit
     * @param sorter
     * @return
     */
    LimitedList<ExamFacetalkPojo> findAllEmpStatistics(ExaminePeriodEnum periodType,Long peroid,Long organizationId,Long dutyId,
                                                       Float startSocre,Float endScore,String status,Limit limit, Sorter sorter);

    /**
     * 考核历史数据集合
     * @param organizationId
     * @param dutyId
     * @param periodEnum
     * @param examPeriods
     * @param limit
     * @param sorter
     * @return
     */
    LimitedList<ExamEmployeePojo> findAllStatisticsHistroyData(Long organizationId,Long dutyId, ExaminePeriodEnum periodEnum, List<ExamPeriod> examPeriods,Limit limit,Sorter sorter);

    /**
     * 员工当前考核项目得分
     * @param examPeriod
     * @param workId
     * @param limit
     * @param sorter
     * @return
     */
    List<ExamStatisticsItemPojo> findExamstatisticsItems(ExamPeriod examPeriod,Long workId,Limit limit,Sorter sorter);

    /**
     * 考核总分对象集合
     * @param empId
     * @param periodType
     * @param year
     * @param limit
     * @param sorter
     * @return
     */
    LimitedList<ExamStatistics> searchEmployeeExamStatisticsScores(
			Long empId, ExaminePeriodEnum periodType,
			int year, Limit limit, Sorter sorter);

    /**
	 * 员工考核总分统计分析数据
	 *
	 * @param organizationId
	 * @param dutyId
	 * @param periodEnum
	 * @param limit
	 * @param sorter
	 * @return
	 */
	LimitedList<ExamStatisticsPojo> searchExamStatisticsPojos(Long organizationId,
			Long dutyId, ExaminePeriodEnum periodEnum, List<ExamPeriod> examPeriods,Limit limit,
			Sorter sorter);

    ExamStatistics getExamStatistics(Long id);
}
